package com.tms.mail.domain;

import java.math.BigDecimal;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.core.annotation.Excel;
import com.ruoyi.common.core.web.domain.BaseEntity;

/**
 * 发票管理对象 fapiao
 *
 * @author ruoyi
 * @date 2024-11-05
 */
public class Fapiao extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 编号 */
    private Long id;

    /** 流水单号 */
    @Excel(name = "流水单号")
    private String serialNumber;

    /** 订单号 */
    @Excel(name = "订单号")
    private String orderNumber;

    /** 客户 */
    @Excel(name = "客户")
    private String customerName;

    /** 客户编码 */
    @Excel(name = "客户编码")
    private String customerCode;

    /** 合同名称 */
    @Excel(name = "合同名称")
    private String contractName;

    /** 订单状态 */
    @Excel(name = "订单状态")
    private Long orderStatus;

    /** 签收时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "签收时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date signTime;

    /** 发货地址 */
    @Excel(name = "发货地址")
    private String shippingAddress;

    /** 收货地址 */
    @Excel(name = "收货地址")
    private String receivingAddress;

    /** 结算状态 */
    @Excel(name = "结算状态")
    private Long settlementStatus;

    /** 结算时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "结算时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date settlementTime;

    /** 对账单状态 */
    @Excel(name = "对账单状态")
    private String reconciliationStatus;

    /** 对账单号 */
    @Excel(name = "对账单号")
    private String reconciliationNumber;

    /** 开票状态 */
    @Excel(name = "开票状态")
    private Long invoicingStatus;

    /** 开票金额 */
    @Excel(name = "开票金额")
    private BigDecimal invoicingAmount;

    /** 开票人 */
    @Excel(name = "开票人")
    private String invoicer;

    /** 开票时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "开票时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date invoicerTime;

    /** 发货时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "发货时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date startTime;

    public void setId(Long id)
    {
        this.id = id;
    }

    public Long getId()
    {
        return id;
    }
    public void setSerialNumber(String serialNumber)
    {
        this.serialNumber = serialNumber;
    }

    public String getSerialNumber()
    {
        return serialNumber;
    }
    public void setOrderNumber(String orderNumber)
    {
        this.orderNumber = orderNumber;
    }

    public String getOrderNumber()
    {
        return orderNumber;
    }
    public void setCustomerName(String customerName)
    {
        this.customerName = customerName;
    }

    public String getCustomerName()
    {
        return customerName;
    }
    public void setCustomerCode(String customerCode)
    {
        this.customerCode = customerCode;
    }

    public String getCustomerCode()
    {
        return customerCode;
    }
    public void setContractName(String contractName)
    {
        this.contractName = contractName;
    }

    public String getContractName()
    {
        return contractName;
    }
    public void setOrderStatus(Long orderStatus)
    {
        this.orderStatus = orderStatus;
    }

    public Long getOrderStatus()
    {
        return orderStatus;
    }
    public void setSignTime(Date signTime)
    {
        this.signTime = signTime;
    }

    public Date getSignTime()
    {
        return signTime;
    }
    public void setShippingAddress(String shippingAddress)
    {
        this.shippingAddress = shippingAddress;
    }

    public String getShippingAddress()
    {
        return shippingAddress;
    }
    public void setReceivingAddress(String receivingAddress)
    {
        this.receivingAddress = receivingAddress;
    }

    public String getReceivingAddress()
    {
        return receivingAddress;
    }
    public void setSettlementStatus(Long settlementStatus)
    {
        this.settlementStatus = settlementStatus;
    }

    public Long getSettlementStatus()
    {
        return settlementStatus;
    }
    public void setSettlementTime(Date settlementTime)
    {
        this.settlementTime = settlementTime;
    }

    public Date getSettlementTime()
    {
        return settlementTime;
    }
    public void setReconciliationStatus(String reconciliationStatus)
    {
        this.reconciliationStatus = reconciliationStatus;
    }

    public String getReconciliationStatus()
    {
        return reconciliationStatus;
    }
    public void setReconciliationNumber(String reconciliationNumber)
    {
        this.reconciliationNumber = reconciliationNumber;
    }

    public String getReconciliationNumber()
    {
        return reconciliationNumber;
    }
    public void setInvoicingStatus(Long invoicingStatus)
    {
        this.invoicingStatus = invoicingStatus;
    }

    public Long getInvoicingStatus()
    {
        return invoicingStatus;
    }
    public void setInvoicingAmount(BigDecimal invoicingAmount)
    {
        this.invoicingAmount = invoicingAmount;
    }

    public BigDecimal getInvoicingAmount()
    {
        return invoicingAmount;
    }
    public void setInvoicer(String invoicer)
    {
        this.invoicer = invoicer;
    }

    public String getInvoicer()
    {
        return invoicer;
    }
    public void setInvoicerTime(Date invoicerTime)
    {
        this.invoicerTime = invoicerTime;
    }

    public Date getInvoicerTime()
    {
        return invoicerTime;
    }
    public void setStartTime(Date startTime)
    {
        this.startTime = startTime;
    }

    public Date getStartTime()
    {
        return startTime;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
                .append("id", getId())
                .append("serialNumber", getSerialNumber())
                .append("orderNumber", getOrderNumber())
                .append("customerName", getCustomerName())
                .append("customerCode", getCustomerCode())
                .append("contractName", getContractName())
                .append("orderStatus", getOrderStatus())
                .append("signTime", getSignTime())
                .append("shippingAddress", getShippingAddress())
                .append("receivingAddress", getReceivingAddress())
                .append("settlementStatus", getSettlementStatus())
                .append("settlementTime", getSettlementTime())
                .append("reconciliationStatus", getReconciliationStatus())
                .append("reconciliationNumber", getReconciliationNumber())
                .append("invoicingStatus", getInvoicingStatus())
                .append("invoicingAmount", getInvoicingAmount())
                .append("invoicer", getInvoicer())
                .append("invoicerTime", getInvoicerTime())
                .append("startTime", getStartTime())
                .toString();
    }
}
